home *** CD-ROM | disk | FTP | other *** search
- /*************************************************************************
- * "sisbar.h"
- *-------------------------------------------------------------------------
- * Font library
- * Copyright (c) 1993, TaroPYON
- *************************************************************************/
-
- #ifndef _SIFTS_H
- #define _SIFTS_H
-
- #ifndef _SIDEFS_H
- # include <sidefs.h>
- #endif
-
- typedef unsigned int FTSID_T;
-
- typedef struct _ftsgaiji_t
- {
- struct _ftsgaiji_t *next;
- unsigned short no;
- unsigned short code;
- short xs, ys; /* フォントの大きさ */
- size_t siz;
- char *ptn; /* フォントパターン */
- } FTSGAIJI_T;
-
- #define FTSGAIJI_NO_MAX (188*8)
- #define FTSGAIJI_HASH_MAX (16)
-
- typedef struct _ftsdat_t
- {
- struct _ftsdat_t *next;
- FTSID_T id;
- int fntXs, fntYs;
- int (*getdatFunc)(int, char **,int *,int *);
- /* パターン取得 */
- int (*putcFunc)(POINT_T *, int, int, int);
- /* 1文字出力 */
- int (*putsFunc)(POINT_T *, int, int, CONST char *);
- /* 1文字出力 */
- int att; /* 属性 */
- unsigned int seg; /* セグメント */
- void *adr; /* アドレス */
-
- int numtbl; /* 外字テーブル数 */
- FTSGAIJI_T **gaitbl; /* 外字ハッシュテーブル */
- } FTSDAT_T;
-
- typedef struct
- {
- FTSDAT_T *ftsDat; /* 現在のフォントデータ */
-
- int fntNum; /* フォントの数 */
- FTSDAT_T *ftsTop;
-
- FTSDAT_T *ftsSt1; /* 標準フォント(16x16) */
- FTSDAT_T *ftsSt2; /* 標準フォント(16x16)太 */
- FTSDAT_T *ftsSl1; /* 標準フォント(16x12) */
- FTSDAT_T *ftsSl2; /* 標準フォント(16x12)太 */
- FTSDAT_T *ftsSh1; /* 標準フォント(16x 8) */
- FTSDAT_T *ftsSh2; /* 標準フォント(16x 8)太 */
- FTSDAT_T *ftsSs1; /* 標準フォント(12x12) */
- FTSDAT_T *ftsSs2; /* 標準フォント(12x12) */
- } SIFTS_T;
-
- extern SIFTS_T *SiFts;
-
- #define FTS_PUTC(_ftsDat,_code,_x,_y,_col,_bac) \
- { POINT_T _point; \
- _point.x = (_x); \
- _point.y = (_y); \
- ((_ftsDat)->putcFunc)(&_point,(_col),(_bac),(_code)); \
- }
- #define FTS_PUTS(_ftsDat,_str,_x,_y,_col,_bac) \
- { POINT_T _point; \
- _point.x = (_x); \
- _point.y = (_y); \
- ((_ftsDat)->putsFunc)(&_point,(_col),(_bac),(_str)); \
- }
-
- extern FTSDAT_T *Rom16x16;
- extern FTSDAT_T *Rom16x12;
- extern FTSDAT_T *Rom16x08;
- extern FTSDAT_T *Rom12x12;
-
- extern FTSDAT_T *Fnt16x16;
- extern FTSDAT_T *Fnt16x12;
- extern FTSDAT_T *Fnt16x08;
- extern FTSDAT_T *Fnt12x12;
- extern FTSDAT_T *Fnt12x08;
-
- extern int FTS_init(void);
- extern void FTS_term(void);
- extern FTSID_T FTS_getNewID( FTSDAT_T *ftsDat );
- extern int FTS_linkFont( FTSDAT_T *ftsDat );
- extern void FTS_unlinkFont( FTSDAT_T *ftsDat );
- extern int FTS_chkPutSize( FTSDAT_T *ftsDat, int *xs, int *ys, CONST char *s );
-
- extern int FtsPutcFunc( FTSDAT_T *ftsDat, POINT_T *point, int col, int bac, int code );
- extern int FtsPutsFunc( FTSDAT_T *ftsDat, POINT_T *point, int col,int bac, CONST char *s );
-
- extern int FTS_rom16x16_init(void);
- extern void FTS_rom16x16_term(void);
- extern int FTS_rom16x12_init(void);
- extern void FTS_rom16x12_term(void);
- extern int FTS_rom16x08_init(void);
- extern void FTS_rom16x08_term(void);
- extern int FTS_rom12x12_init(void);
- extern void FTS_rom12x12_term(void);
-
- extern int FTS_fnt16x16_init(void);
- extern void FTS_fnt16x16_term(void);
- extern int FTS_fnt16x12_init(void);
- extern void FTS_fnt16x12_term(void);
- extern int FTS_fnt16x08_init(void);
- extern void FTS_fnt16x08_term(void);
- extern int FTS_fnt12x12_init(void);
- extern void FTS_fnt12x12_term(void);
- extern int FTS_fnt12x08_init(void);
- extern void FTS_fnt12x08_term(void);
-
- extern void SI_makeFnt12( unsigned char *buf12, int jis );
-
- #endif
-